32 research outputs found

    FAIRSECO: An infrastructure for measuring impact of research software

    Get PDF
    Finding research software is a complex task, as research software engineers regularly search for algorithms and methods deeply embedded in large software packages during the creation of research software. Furthermore, they go through lengthy evaluation and extraction processes to find one particular algorithm relevant to their research project. Additionally, for creators of research software, it is hard to show the impact that their code has made on the field, and only very course measures exist for evaluating the success of research software. This study introduces the concept of FAIRSECO, which aims to enable research software engineers to rapidly find and extract relevant software fragments from the worldwide research software ecosystem. Research software engineers from all fields can transplant these source code fragments, maintain the provenance of source code, and easily credit the original authors of the software. Simultaneously, the platform also enables research software engineers to report on their software's impact. With FAIRSECO, we introduce a platform for research software engineers that creates a “method economy”, i.e., where smaller granularity reuse becomes possible while increasing FAIRness (Findable, Accessible, Interoperable, and Reusable) of the worldwide research software ecosystem

    Capturing Software Architecture Knowledge for Pattern-Driven Design

    Get PDF
    Context: Software architecture is a knowledge-intensive field. One mechanism for storing architecture knowledge is the recognition and description of architectural patterns. Selecting architectural patterns is a challenging task for software architects, as knowledge about these patterns is scattered among a wide range of literature. Method: We report on a systematic literature review, with the aim of building a decision model for the architectural pattern selection problem. Moreover, twelve experienced practitioners at software-producing organizations evaluated the usability and usefulness of the extracted knowledge.\newline Results: An overview is provided of 29 patterns and their effects on 40 quality attributes. Furthermore, we report in which systems the 29 patterns are applied and in which combinations. The practitioners confirmed that architectural knowledge supports software architects with their decision-making process to select a set of patterns for a new problem. We investigate the potential trends among architects to select patterns. Conclusion: With the knowledge available, architects can more rapidly select and eliminate combinations of patterns to design solutions. Having this knowledge readily available supports software architects in making more efficient and effective design decisions that meet their quality concerns

    Decision Support for Blockchain Platform Selection: Three Industry Case Studies

    Get PDF
    Blockchain technology has received significant attention recently, as it offers a reliable decentralized infrastructure for all kinds of business transactions. Software-producing organizations are increasingly considering blockchain technology for inclusion into their software products. Selecting the best fitting blockchain platform requires the assessment of its functionality, adaptability, and compatibility to the existing software product. Novice software developers and architects are not experts in every domain, so they should either consult external experts or acquire knowledge themselves. The decision-making process gets more complicated as the number of decision-makers, alternatives, and criteria increases. Hence, a decision model is required to externalize and organize knowledge regarding the blockchain platform selection context. Recently, we designed a decision support system to use such decision models to support decision-makers with their technology selection problems in software production. In this article, we introduce a decision model for the blockchain platform selection problem. The decision model has been evaluated through three real-world case studies at three software-producing organizations. The case-study participants asserted that the approach provides significantly more insight into the blockchain platform selection process, provides a richer prioritized option list than if they had done their research independently, and reduces the time and cost of the decision-making process

    AWESOME: an auction and witness enhanced SLA model for decentralized cloud marketplaces

    Get PDF
    In recent decades, the world has witnessed cloud computing as an essential technology that changes the traditional application Development and Operation (DevOps) lifecycle. However, current cloud software DevOps and Service Level Agreement (SLA) management often face challenges of 1) selecting the best fitting service providers, customizing services and planning capacities for large-scale distributed applications; 2) guaranteeing high-quality and trustworthy SLAs among multiple service providers; 3) enhancing the interoperability of cloud services across different providers; and 4) designing effective incentive models among stakeholders. This paper proposes a novel framework called Auction and Witness Enhanced trustworthy SLA for Open, decentralized service MarkEtplaces (AWESOME) to build a trustworthy cloud marketplace and address the above challenges. The proposed framework contains four subsystems: a customizable graphical user interface, an auction-based service selection model, a witness committee management mechanism, and a smart contract factory orchestration. We developed a prototype AWESOME decentralized application (DApp) based on the Ethereum blockchain. Extensive experiments are designed to evaluate the latency and cost of our model. The experimental results demonstrate that our model is economical and feasible.publishedVersio

    A code search engine for software ecosystems

    Get PDF
    Searching and reusing source code play an increasingly significant role in the daily tasks of software developers. While code repositories, such as GitHub and Stackoverflow, may provide some results, a code search engine is generally considered most helpful when searching for code snippets as they typically crawl data from a wide range of code repositories. Code search engines enable software developers to search for code snippets using search terms. The accuracy of the search results can be increased if the searchers' intent can be modeled and predicted correctly. This study proposes a novel code search engine to model user intents through a dialogue system and then suggests a ranked list of code snippets that can meet user requirements

    SearchSECO:A Worldwide Index of the Open Source Software Ecosystem

    Get PDF
    Repository mining research is a data-intensive domain with a focus on source code. There are many ways to search for code in the worldwide software ecosystem, but these search methods are inefficient and only cover small parts of the software ecosystem. One of the problems is granularity: it is possible to search through code on a file-level and cover a significant part of the software ecosystem or search for a line of code and only cover a small part of the software ecosystem, but not both. We propose SearchSECO: a language-agnostic search engine and research platform that searches through abstract representations of source code methods. We use SearchSECO to search across the worldwide software ecosystem and index the encountered methods. With SearchSECO, the field is advanced because it (1) provides finer-grained and more efficient searches, (2) covers more of the software ecosystem than other search mechanisms, and (3) provides mechanisms for source code provenance

    SearchSECO:A Worldwide Index of the Open Source Software Ecosystem

    Get PDF
    Repository mining research is a data-intensive domain with a focus on source code. There are many ways to search for code in the worldwide software ecosystem, but these search methods are inefficient and only cover small parts of the software ecosystem. One of the problems is granularity: it is possible to search through code on a file-level and cover a significant part of the software ecosystem or search for a line of code and only cover a small part of the software ecosystem, but not both. We propose SearchSECO: a language-agnostic search engine and research platform that searches through abstract representations of source code methods. We use SearchSECO to search across the worldwide software ecosystem and index the encountered methods. With SearchSECO, the field is advanced because it (1) provides finer-grained and more efficient searches, (2) covers more of the software ecosystem than other search mechanisms, and (3) provides mechanisms for source code provenance
    corecore